Systems and Methods for Using Robots to Monitor Environmental Conditions in an Environment

ABSTRACT

Methods and devices are disclosed for monitoring environmental conditions in one or more environments. In one embodiment, the method includes maintaining a plurality of environmental-condition thresholds, each of which corresponds to an environmental condition and is predetermined based on data corresponding to the environmental condition that is received from a plurality of robots. The method further includes receiving from a first robot first data corresponding to a first environmental condition in a first environment. The method may still further include making a first comparison of the first data and a first environmental-condition threshold corresponding to the first environmental condition and, based on the first comparison, triggering a notification. Triggering the notification may comprise transmitting to the robot instructions to transmit the notification to at least one of a call center and a remote device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/758,055 filed on Feb. 4, 2013, the contents of which are herebyincorporated by reference.

This application claims the benefit of U.S. Provisional Application No.61/596,780 filed on Feb. 9, 2012, the entirety of which is hereinincorporated by reference.

BACKGROUND

Various sensors may be used in an environment to sense one or moreenvironmental conditions of the environment. As a first example, manyhomes include a smoke sensor that senses a level of smoke in the home.As a second example, many warehouses include a temperature sensor thatsenses an ambient temperature in the warehouse. Other sensors are usedas well.

Some sensors may be equipped with an alarm, such as a visual or audiblealarm, that may be triggered based on the sensed environmentalconditions. Using the first example above, a smoke alarm in a home maytrigger an audible alarm when a sensed level of smoke in the homeexceeds an acceptable level. Other sensors may be equipped to transmit anotification, such as a textual notification, to another entity based onthe sensed environmental conditions. Using the second example above, atemperature sensor in a warehouse may transmit a notification to acontrol center or other entity when a sensed ambient temperature isoutside an acceptable range of ambient temperatures.

SUMMARY

Disclosed herein are cloud-based systems and methods for using robots tomonitor environmental conditions in one or more environments. Thedisclosed cloud-based system may include a server and one or more robotsin environments. Each of the one or more robots may include a server andone or more robots in environments.

Each robot may collect data regarding one or more environmentalconditions in its environment and transmit the collected data to theserver. The server may use the data received from the robots to maintaina number of environmental-condition thresholds. Further, the server mayuse the environmental-condition thresholds to evaluate the environmentalcondition(s) in the robots' environments.

In one aspect, a method for monitoring an environmental condition in anenvironment is disclosed. The method includes maintaining a plurality ofenvironmental-condition thresholds, each of which corresponds to anenvironmental condition and is predetermined based on data correspondingto the environmental condition that is received from a plurality ofrobots. The method further includes receiving from a first robot firstdata corresponding to a first environmental condition in a firstenvironment. The method still further includes making a first comparisonof the first data and a first environmental-condition thresholdcorresponding to the first environmental condition and, based on thefirst comparison, triggering a notification.

In another aspect, a nontransitory computer readable medium is disclosedhaving stored therein instructions executable by a computing device tocause the computing device to perform the functions of the methoddescribed above.

In yet another aspect, a robot for monitoring environmental conditionsin environments is disclosed. The robot includes at least one ofon-board sensors and a remote sensor interface coupled to at least oneremote sensor. The on-board sensors and the remote sensor interface areconfigured to collect first data corresponding to a first environmentalcondition. The robot further includes a server interface configured totransmit to a server a request for a first environmental-conditionthreshold corresponding to the first environmental condition and toreceive from the server an indication of the firstenvironmental-condition threshold, wherein the firstenvironmental-condition threshold is predetermined based on datacorresponding to the first environmental condition that is received froma plurality of robots. The robot further includes at least oneprocessor; and data storage comprising instructions executable by the atleast one processor to make a comparison of the first data and the firstenvironmental-condition threshold and, based on the comparison, transmita notification.

In still another aspect, a server for operating in a system formonitoring environmental conditions in environments is disclosed. Theserver includes a first input interface configured to receive from afirst robot first data corresponding to a first environmental conditionin a first environment, at least one processor, and data storage. Thedata storage comprises a plurality of environmental-conditionthresholds, each of which corresponds to an environmental condition andis predetermined based on data corresponding to the environmentalcondition and received from a plurality of robots. The data storagefurther comprises instructions executable by the at least one processorto make a first comparison of the first data and a firstenvironmental-condition threshold corresponding to the firstenvironmental condition and, based on the first comparison, trigger anotification.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description.

BRIEF DESCRIPTION OF THE FIGURES

In the Figures,

FIG. 1 is an example a system for monitoring environmental conditions inenvironment;

FIG. 2 is a simplified block diagram of an example server;

FIG. 3A is a simplified block diagram of an example robot;

FIG. 3B illustrates a graphical example of a robot;

FIG. 3C illustrates another graphical example of a robot;

FIG. 4A is a block diagram of an example method of a first robotinteracting with the cloud to monitor an environmental condition in afirst environment;

FIG. 4B is a block diagram of an example method of a second robotinteracting with the cloud to monitor the environmental condition in asecond environment; and

FIG. 5 is a block diagram of another example method of a robotinteracting with the cloud to monitor an environmental condition in anenvironment,

all arranged in accordance with at least some embodiments describedherein.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying figures, which form a part hereof. In the figures, similarsymbols typically identify similar components, unless context dictatesotherwise. The illustrative embodiments described in the detaileddescription, figures, and claims are not meant to be limiting. Otherembodiments may be utilized, and other changes may be made, withoutdeparting from the scope of the subject matter presented herein. It willbe readily understood that the aspects of the present disclosure, asgenerally described herein, and illustrated in the figures, can bearranged, substituted, combined, separated, and designed in a widevariety of different configurations, all of which are explicitlycontemplated herein.

This disclosure may disclose, inter alia, methods and systems forrobot-cloud computing. In particular, in examples described herein, anumber of robots and/or other client devices may interact with a cloudserver to share data corresponding to one or more environmentalconditions in a number of environments. The cloud server may, in turn,use the data from the robots and/or other client devices to determine athreshold for each environmental condition. These thresholds may bereferred to as environmental-condition thresholds.

Thereafter, a robot may collect data corresponding to an environmentalcondition in the robot's environment. The robot may transmit the data tothe cloud server, and the cloud server may compare the data from therobot with an environmental-condition threshold for the environmentalcondition. Alternately or additionally, the robot may transmit to thecloud server a request for the environmental-condition threshold for theenvironmental condition, the robot may receive theenvironmental-condition threshold, and the robot may compare the datafrom the robot with the environmental-condition threshold. In eithercase, based on the comparison, the cloud server or robot may determinewhether the environmental condition in the robot's environment is at anacceptable level or an unacceptable level. When the environmentalcondition is at an unacceptable level, the cloud server or robot maytrigger a notification.

Referring now to the figures, FIG. 1 is an example a system 100 formonitoring environmental conditions in an environment. As shown in FIG.1, the system 100 includes a cloud server 102 coupled to two robotclients 112A and 112B via communication links 120A and 120B,respectively.

While one cloud server 102 and two robot clients 112A and 112B areshown, more or fewer cloud servers and robot clients are possible aswell. In addition, different types of client devices, besides robotclients 112A and 112B, may be coupled to the cloud server 102. Forexample, any device that may generally comprise a display system,memory, and a processor may be coupled to the cloud server 102.

The system 100 may be configured to operate in a cloud-based computingarchitecture. Cloud-based computing generally refers to networkedcomputer architectures in which application execution and storage may bedivided, to some extent, between server and client devices. In thesystem 100, the cloud server 102 may be said to be a server device,while the robot clients 112A and 112B may be said to be client devices.Thus, in the system 100, application execution and storage may bedivided, to some extent, between the cloud server 102 and the robotclients 112A and 112B. In particular, in the system 100,environmental-condition thresholds data and instructions executable todetermine the environmental-condition thresholds, to compare receiveddata with the environmental-condition thresholds, and to triggernotifications may be divided, to some extent, between the cloud server102 and the robot clients 112A and 112B.

In some embodiments, the cloud server 102 may store copies of theenvironmental-condition thresholds data and/or the instructions. Atleast some of this data (e.g., data corresponding to anenvironmental-condition threshold) and instructions (e.g., instructionsto trigger notifications) may be dynamically delivered to and/ordownloaded by the robot clients 112A and 112B, as needed or otherwise,for execution at the robot clients 112A and 112B. In this manner, therobot clients 112A and 112B may access at least some of this data andinstructions on a near real-time basis.

In some embodiments, downloaded data and instructions can be tailored tothe specific capabilities of the robot clients 112A and 112B accessingthe cloud server 102. Further, in some embodiments, details of thearchitecture may be transparent to users of the robot clients 112A and112B.

Dividing application execution and storage between the cloud server 102and the robot clients 112A and 112B may allow more processing to beperformed by the cloud server 102, taking advantage of the comparativelygreater processing power and capability of the cloud server 102, forexample.

In the system 100, the cloud server 102 includes a cloud service 104, acloud platform 106, a cloud infrastructure 108, and a database 110. Thecloud server 102 may include more or fewer components, and each of thecloud service 104, the cloud platform 106, the cloud infrastructure 108,and the database 110 may comprise multiple elements as well. Thus, oneor more of the described functions of the system 100 may be divided upinto additional functional or physical components, or combined intofewer functional or physical components. In some further examples,additional functional and/or physical components may be added to theexamples illustrated by FIG. 1. Delivery of cloud computing may involvemultiple cloud components communicating with each other over applicationprogramming interfaces, such as web services and three-tierarchitectures, for example.

The cloud server 102 may represent a networked computer architecture,and in one example, the cloud service 104 represents a queue forhandling requests from client devices, such as the robot clients 112Aand 112B. The cloud platform 106 may include a frontend of the cloud andmay be coupled to the cloud service 104 to perform functions to interactwith client devices. The cloud platform 106 may include applicationsused to access the cloud server 102 via a user interface, such as a webbrowser. The cloud infrastructure 108 may include service application ofbilling components of the cloud server 102, and thus, may interact withthe cloud service 104. The database 110 may represent storagecapabilities by the cloud server 102, and thus, may be accessed by anyof the cloud service 104, the cloud platform 106, and/or theinfrastructure 108. An example server is further described below inconnection with FIG. 2.

As noted above, the system 100 includes robot clients 112A and 112B,each of which coupled to or otherwise configured to be capable ofcommunicating with components of the cloud server 102.

Each of the robot clients 112A and 112B may comprise any computingdevice that is configured to connect to the cloud server 102 and thathas an actuation capability (e.g., electromechanical capabilities). Eachrobot client 112A and 112B may further be a combination of computingdevices. Robot client 112A may be located in a first environment androbot client 112B may be located in a second environment. The secondenvironment may be co-located with the first environment, or may beremote from the first environment. For example, robot client 112A couldbe located in a first home and robot client 112B could be located in asecond home, such as a home next door to the first home, or a homeseveral miles away. Other examples are possible as well.

In some examples, one or both of robot clients 112A and 112B may collectdata and upload the data to the cloud server 102. For example, one orboth of robot clients 112A and 112B may collect data corresponding toone or more environmental conditions and may upload the data to thecloud server 102. In particular, robot client 112A may collect datacorresponding to one or more environmental conditions in the firstenvironment. Similarly, robot client 112B may collect data correspondingto one or more environmental conditions in the second environment.Example environmental conditions may include temperature, levels ofsound, levels of light, levels of carbon monoxide, natural gas, or othergases, levels of water, motion, and parameters of one or more appliancesor other devices in the environment. Other environmental conditions arepossible as well.

In order to collect data corresponding to the one or more environmentalconditions, robot clients 112A and 112B may include one or more on-boardsensors. Example on-board sensors include gyroscopes, accelerometers,compasses, Global Positioning System (GPS) receivers, light sensors,infrared sensors, optical sensors, biosensors, radio sensors, RadioFrequency identification (RFID) systems, wireless sensors, cameras,light sensors, motion sensors, range sensors, microphones or other audiosensors, speakers, radar, capacitive sensors, touch sensors, smokesensors, carbon monoxide sensors, natural gas sensors, gyro sensors,heat sensors, water sensors, and/or biometric sensors. Other types ofon-board sensors are possible as well.

In some embodiments, in order to collect data corresponding to the oneor more environmental conditions, the robot client 112A may further becoupled to a remote sensor 114A via communication link 122A, and robotclient 112B may be coupled to remote sensor 114B via a communicationlink 122B, as shown. Remote sensors 114A and 114B may collect datacorresponding to one or more environmental conditions in the first andsecond environments, respectively, and transmit the data to the robotclients 112A and 112B, respectively. Example remote sensors includelight sensors, infrared sensors, optical sensors, biosensors, radiosensors, Radio Frequency identification (RFID) systems, wirelesssensors, cameras, light sensors, motion sensors, range sensors,microphones or other audio sensors, speakers, radar, capacitive sensors,touch sensors, smoke sensors, carbon monoxide sensors, natural gassensors, gyro sensors, heat sensors, water sensors, and/or biometricsensors. In some embodiments, the remote sensors may include or becoupled to appliances or other devices that are configured to collectdata regarding their own performance. Examples of such remote sensorconfigurations include washing machines, dryers, refrigerators, ovens,stoves, small appliances (e.g., toasters and coffee makers), furnaces,air conditioning units, heating units, televisions, computers, firealarms, and security systems. Other types of remote sensors are possibleas well.

Thus, robot clients 112A and 112B may collect data corresponding to oneor more environmental conditions in the first and second environments,respectively, through one or both of on-board sensors and remote sensors114A and 114B.

Upon collecting the data, each of robot client 112A and robot client112B may send the collected data to the cloud server 102 viacommunication links 120A and 120B, respectively. The cloud server 102may be configured to perform calculations or analysis on the data andreturn processed data to the robot clients 112A and 112B. For example,the cloud server 102 may be configured to compare the received data withone or more environmental-condition thresholds and, in response tofinding that some or all of the data is at an unacceptable level basedon the one or more environmental-condition thresholds, return to one orboth robot clients 112A and 112B instructions to trigger a notification.Alternately, upon collecting the data, each of robot client 112A and112B may transmit to the cloud server 102 a request for the one or moreenvironmental-condition thresholds, and, upon receiving the requestedenvironmental-condition thresholds from the server, may compare thereceived data with one or more environmental-condition thresholds. Inresponse to finding that some or all of the data is at an unacceptablelevel based on the one or more environmental-condition thresholds, robotclients 112A and 112B may transmit a notification. In some embodiments,prior to transmitting the notification, robot clients 112A and 112B maydetermine whether the data at an unacceptable level was collected at aremote sensor. When the data was collected at a remote sensor, the robotmay verify the data (e.g., by moving to where the remote sensor islocated and re-collecting the data, or by controlling another remotesensor to re-collect the data) before triggering the notification. Anexample robot client is further described below in connection with FIGS.3A-C.

As shown in FIG. 1, robot client 112A is further connected to a remotedevice 116 via a communication link 124. Remote device 116 may be anytype of device configured to receive the notification. For example,remote device 116 may be a laptop, mobile telephone, smartphone,personal digital assistant, tablet, or personal or cellular telephone,and may be configured to receive the notification and responsivelydisplay a visible notification and/or emit an audible notification. Asanother example, remote device 116 may be one or more of the remotesensors described above and may be configured to receive thenotification and responsively display a visible notification and/or emitan audible notification, power on, power off, modify one or moreparameters, and/or perform one or more tasks. Other remote devices arepossible as well.

As shown, robot client 112B is further connected to a call center 118via a communication link 126. Call center 118 may be any type of systemconfigured to receive the notification. For example, call center 118 maybe an emergency call center, a public safety answering point, and/orother service center. Call center 118 may be operated by a user and/ormay be automated. To this end, call center 118 may include any type ofcomputing device (e.g., PC, laptop computer, etc.). Other types of callcenters are possible as well.

In some embodiments, robot client 112A may be further connected to oneor more additional remote devices and/or one or more call centers, suchas call center 118 or other call centers. Further, in some embodiments,robot client 112B may be further connected to one or more additionalcall centers and/or one or more remote devices, such as remote device116 or other remote devices. In addition, the cloud server 102 may becoupled to the remote device 116 and/or the call center 118, and may beconfigured to provide the notification.

Any of robot clients 112A and 112B, remote sensors 114A and 114B, remotedevice 116, and call center 118 may include additional componentsbesides those described above. For example, any of robot clients 112Aand 112B, remote sensors 114A and 114B, remote device 116, and callcenter 118 may include an integrated user-interface (UI) that allows auser to interact with the device. For example, one or both of robotclients 112A and 112B may include various buttons and/or a touchscreeninterface that allow a user to provide input. As another example, remotedevice 116 may include a microphone configured to receive voice commandsfrom a user. Furthermore, any of robot clients 112A and 112B, remotesensors 114A and 114B, remote device 116, and call center 118 mayinclude one or more interfaces that allow various types ofuser-interface devices to be connected to the client devices.

Each of the communication links 120A, 120B, 122A, 122B, 124, and 126shown in FIG. 1 may include wired links, such as serial or parallelbuses, or wireless links, such as Bluetooth, IEEE 802.11 (IEEE 802.11may refer to IEEE 802.11-2007, IEEE 802.11n-2009, or any other IEEE802.11 revision), or other wireless based communication links.

In some examples, the system 100 may include access points through whichrobot clients 112A and 112B may communicate with the cloud server 102.Access points may take various forms. For example, an access point maytake the form of a wireless access point (WAP) or wireless router. Asanother example, if a robot client 112A or 112B connects using acellular air-interface protocol, such as a CDMA or GSM protocol, anaccess point may be a base station in a cellular network that providesInternet connectivity via the cellular network.

As such, robot clients 112A and 112B may include a wired or wirelessnetwork interface through which robot clients 112A and 112B can connectto the cloud server 102 (or access points). As an example, robot clients112A and 112B may be configured to use one or more protocols such as802.11, 802.16 (WiMAX), LTE, GSM, GPRS, CDMA, EV-DO, and/or HSPDA, amongothers. Furthermore, robot clients 112A and 112B may be configured touse multiple wired and/or wireless protocols, such as “3G” or “4G” dataconnectivity using a cellular communication protocol (e.g., CDMA, GSM,or WiMAX, as well as for “WiFi” connectivity using 802.11). Otherexamples are also possible.

While the remote device 116 and the call center 118 are shown to becoupled directly to the robot clients 112A and 112B, respectively, insome embodiments the remote device 116 and/or the call center 118 may beconnected to the robot clients via one or more wires or wirelessnetworks, such as the Internet and/or the cloud server 102. Otherexamples are possible as well. Further, while robot clients 112A and112B are shown to be coupled to one another only through the cloudserver 102, in some embodiments robot clients 112A and 112B may bedirectly connected or connectable to one another, as indicated by thecommunication link 128. Communication link 128 may take the form of anyof the wired or wireless links described above.

FIG. 2 is a simplified block diagram of an example server 200. Theserver 200 may take the form of a cloud server in a cloud-computingarchitecture, such as the system 100 described above in connection withFIG. 1. As shown, the server 200 includes a first input interface 202, afirst output interface 204, a second input interface 206, a secondoutput interface 208, a processor 210, and data storage 212, all ofwhich may be communicatively linked together by a system bus, network,and/or other connection mechanism 214.

The first input interface 202 may be any interface configured to receivefrom a first robot (such as, for example, robot client 112A, asdescribed above in connection with FIG. 1) first data corresponding to afirst environmental condition in a first environment. For example, thefirst input interface 202 may be a wireless interface. To this end, thefirst input interface 202 may include an antenna and a chipset forcommunicating with the first robot over an air interface. The chipset orfirst input interface 202 in general may be arranged to communicateaccording to one or more types of wireless communication (e.g.protocols), such as Bluetooth, communication protocols described in IEEE802.11 (including any IEEE 802.11 revisions), cellular technology (suchas GSM, CDMA, UMTS, EV-DO, WiMAX, or LTE), or Zigbee, among otherpossibilities. Alternately or additionally, the first input interface202 may be a web-based interface accessible by the first robot. Thefirst input interface 202 may take other forms as well.

The first output interface 204 may be any interface configured totransmit to the first robot instructions to transmit a notificationand/or data corresponding to an environmental-condition threshold. Tothis end, the first output interface 204 may be, for example, a wirelessinterface, such as any of the wireless interfaces described above.

The second input interface 206 may be any interface configured toreceive from a second robot (such as, for example, robot client 112B, asdescribed above in connection with FIG. 1) second data corresponding tothe first environmental condition in a second environment. To this end,the second input interface 206 may be, for example, a wirelessinterface, such as any of the wireless interfaces described above.

The second output interface 208 may be any interface configured totransmit to the second robot instructions to transmit a notificationand/or data corresponding to an environmental-condition threshold. Tothis end, the second output interface 208 may be, for example, awireless interface, such as any of the wireless interfaces describedabove.

One or more of the first input interface 202, the first output interface204, the second input interface 206, and the second output interface 208may be combined. In some embodiments, the server 200 may include one ormore additional interfaces configured to receive data from one or moreadditional entities, such as other sensors, other robots, and theInternet.

The processor 210 may comprise one or more general-purpose processorsand/or one or more special-purpose processors. To the extent theprocessor 210 includes more than one processor, such processors couldwork separately or in combination. Further, the processor 210 may beintegrated in whole or in part with the first input interface 202, thefirst output interface 204, the second input interface 206, the secondoutput interface 208, and/or with other components.

Data storage 212, in turn, may comprise one or more volatile and/or oneor more non-volatile storage components, such as optical, magnetic,and/or organic storage, and data storage 212 may be integrated in wholeor in part with the processor 210. Further, data storage 212 may containthe data received from the first and second robots, as well as otherrobots and client devices. Additionally, data storage 212 may containenvironmental-condition thresholds 216 and instructions 218 (e.g.,program logic) executable by the processor 210 to carry out variousserver functions.

Each environmental-condition threshold 216 may correspond to anenvironmental condition. For example, environmental-condition thresholds216 may include a carbon monoxide threshold corresponding to a maximumacceptable level of carbon monoxide in an environment. Other examplesare possible as well.

Each environmental-condition threshold 216 may be predetermined based ondata corresponding to the environmental condition, such as the datareceived from the robots and other client devices. Using the exampleabove, the carbon monoxide threshold may be predetermined based on datareceived from the robots indicating measured levels of carbon monoxidein a number of environments.

In some embodiments, the environmental-condition thresholds 216 maysimply be running means or medians of the data received from the robotsand other client devices. In other embodiments, theenvironmental-condition thresholds 216 may be weighted means, quadraticmeans, truncated means, or other types of means or medians. Theenvironmental-condition thresholds may take other forms as well.

In some embodiments, the environmental-condition thresholds 216 maycorrespond to more general environmental conditions, such as measuredlevels of carbon monoxide in environments, or may correspond to morespecific environmental conditions, such as measured levels of carbonmonoxide in kitchens of residential environments, measured levels ofcarbon monoxide in commercial environments in the southwest UnitedStates, or measured levels of carbon monoxide in July. Other examplesare possible as well.

Instructions 218 may be executable by the processor 210 to maintain theenvironmental-condition thresholds 216. For example, the instructions218 may be executable by the processor 210 to calculate the running meanor median of the data received from the robots and other client devicescorresponding to each environmental condition. Other examples arepossible as well.

As noted above, the server 200 may be configured to receive first datacorresponding to a first environmental condition via the first inputinterface 202. Accordingly, the instructions 218 may be furtherexecutable by the processor 210 to make a comparison of the first dataand an environmental-condition threshold corresponding to the firstenvironmental condition.

Further, the instructions 218 may be executable by the processor 210 totrigger a notification based on the comparison. Triggering thenotification may involve, for example, transmitting to the first robot(e.g., via the first output interface 204) instructions to transmit thenotification. Alternately, triggering the notification may involvetransmitting the notification to another entity, such as a remote deviceor call center. Triggering the notification may take other forms aswell.

Data storage 212 may include additional instructions as well.

FIG. 3A illustrates an example robot 300. The robot 300 may be used as arobot client in a cloud-computing architecture, such as the system 100described above in connection with FIG. 1. As shown, the robot 300includes a client device 316 coupled to mechanical actuators 320. Theclient device 316 may include a server interface 302, a notificationinterface 304, on-board sensors 306, a remote sensor interface 308, aprocessor 310, and data storage 312.

The server interface 302 may be any interface configured to transmitdata to and receive instructions and/or data from a server, such as theserver 200 described above in connection with FIG. 2. The datatransmitted to the server may be, for example, data corresponding to anenvironmental condition in the robot's environment. The instructionsreceived from the server may be, for example, instructions to transmit anotification. The data received from the server may be, for example, anenvironmental-condition threshold. The server interface 302 may beconfigured to transmit and receive other information as well.

In some embodiments, the server interface 302 may be a wirelessinterface. To this end, the server interface 302 may include an antennaand a chipset for communicating with the server over an air interface.The chipset or server interface 302 in general may be arranged tocommunicate according to one or more types of wireless communication(e.g. protocols), such as Bluetooth, communication protocols describedin IEEE 802.11 (including any IEEE 802.11 revisions), cellulartechnology (such as GSM, CDMA, UMTS, EV-DO, WiMAX, or LTE), or Zigbee,among other possibilities. Alternately or additionally, the serverinterface 302 may be a web-based application supported by the server andrunning on the robot client 300. The server interface 302 may take otherforms as well.

The notification interface 304 may be any interface configured totransmit a notification. For example, the notification interface 304 maybe an interface configured to transmit the notification to a remotedevice, such as the remote device 116 described above in connection withFIG. 1, or to a call center, such as the call center 118 described abovein connection with FIG. 1. To this end, the notification interface 304may be, for example, a wireless interface, such as any of the wirelessinterfaces described above.

The on-board sensors 306 may be any sensors configured to collect datacorresponding to environmental conditions. On-board sensors 306 mayinclude any of the on-board sensors described above.

The remote sensor interface 308 may be any interface configured tocollect data corresponding to environmental conditions from one or moreremote sensors. The remote sensors may include any of the remote sensorsdescribed above. The remote sensor interface 308 may be, for example, awireless interface, such as any of the wireless interfaces describedabove.

The processor 310 may comprise one or more general-purpose processorsand/or one or more special-purpose processors. To the extent theprocessor 310 includes more than one processor, such processors couldwork separately or in combination. Further, the processor 310 may beintegrated in whole or in part with the server interface 302, thenotification interface 304, any of the on-board sensors 306, the remotesensor interface 308, and/or with other components.

Data storage 312, in turn, may comprise one or more volatile and/or oneor more non-volatile storage components, such as optical, magnetic,and/or organic storage, and data storage 312 may be integrated in wholeor in part with the processor 310. Further, data storage 312 may containinstructions 314 (e.g., program logic) executable by the processor 310to carry out various robot functions.

For example, the instructions 314 may be executable by the processor 310to control the on-board sensors 306 to collect data and, in some cases,to analyze the data. The instructions 314 may be further executable bythe processor 310 to control the remote sensor interface 308 to receivethe data collected by the remote sensors and, in some cases, to analyzethe data. The data collected through the on-board sensors 306 and/or theremote sensor interface 308 may be data corresponding to anenvironmental condition in an environment of the robot 300.

Further, the instructions 314 may be executable by the processor 310 totransmit the data collected through the on-board sensors 306 and/or theremote sensor interface 308 to the server via the server interface 302,and to receive the instructions to transmit a notification from theserver via the server interface 302. Alternately or additionally, theinstructions 314 may be executable by the processor 310 to transmit tothe server a request for an environmental-condition thresholdcorresponding to the environmental condition, and to receive theenvironmental-condition threshold. Further, the instructions 314 may befurther executable by the processor 310 to make a comparison of the datacollected through the on-board sensors 306 and/or the remote sensorinterface 308 with the environmental-condition threshold and, based onthe comparison, decide to transmit a notification.

Further, the instructions 314 may be executable by the processor 310 totransmit the notification. The instructions 314 may be executable by theprocessor 310 to perform other robot functions as well.

In some embodiments, the client device 316 may be a module that can beconnected to and disconnected from the robot 300. For example, theclient device 316 may be a mobile device or tablet computer. Otherexamples are possible as well.

In some embodiments, the client device 316 may be configured tophysically connect to the robot 300, such as by sitting on a “chest” ofthe robot 300 to form an interactive display. In other embodiments, theclient device 316 may be configured to wirelessly connect to the robot300 through, for example, a Bluetooth connection. Other wirelesstechnologies are possible as well.

In some embodiments, the client device 316 may include one or moresensors that, when the client device 316 is connected to the robot 300,serve as the on-board sensors 308 for the robot 300. For example, inembodiments where the client device 316 comprises a tablet computer, thesensors may include those often found in tablet computers such as, forexample, GPS receivers and cameras. Other examples are possible as well.

In some embodiments, the client device 316 may be configured to interactwith the server whether connected to the robot 300 or not, and may shareinformation with the robot 300 when connected. This may allow a user todownload new routines for the robot 300 from the cloud. For example, alaundry folding routine may be stored on the cloud, and a user may beable to select this routine using the client device 316 to download theroutine from the cloud, and when the client device 316 is placed into orcoupled to the robot 300, the robot 300 would be able to perform thedownloaded action. Other examples are possible as well.

In some embodiments, one or more of the server interface 302, thenotification interface 304, the on-board sensors 306, the remote sensorinterface 308, the processor 310, and the data storage 312 may bemodules that can be removably connected to the client device 316 and/orthe robot 300. For example, one or more on-board sensors may beremovably connected to the client device 316 and/or the robot 300. Thismay allow a user to configure the types of data that will be collectedby the robot 300. For example, a user may connect an ambient temperaturesensor to the client device 316 and/or the robot 300, and the robot 300may then be able to collect data corresponding to the ambienttemperature in an environment. Further, this may allow the robot 300 tovary power consumption based on, for example, a battery power level ofthe robot 300. For example, the robot 300 may power off one or moreon-board sensors to conserve power. Other examples are possible as well.

In embodiments where one or more of the client device 316, the serverinterface 302, the notification interface 304, the on-board sensors 306,the remote sensor interface 308, the processor 310, and the data storage312 are modules, any of the modules may be interconnected, and/or maycommunicate to receive data or instructions from each other so as toprovide a specific output or functionality for the robot 300.

The mechanical actuators 318 may include a moveable base, motors,wheels, movable arms, and/or other elements that enable robot 300 tomove in or interact with the environment.

FIG. 3B illustrates a graphical example of a robot 320. In FIG. 3B, therobot 320 is shown as a mechanical form of a person including arms,legs, and a head. The robot 320 may be configured to receive any numberof client devices or modules, as described above. In some embodiments,the robot 320 may be configured to receive a client device that isconfigured to operate the robot 320.

FIG. 3C illustrates another example of a robot 322. The robot 322includes a client device 324, sensors 326, and a mechanical actuator328. In this example, the client device 324 may be a mobile device or atablet computer. Other examples are possible as well. In someembodiments, the client device 324 may include or may be connectable tothe sensors 326. The sensors 326 may include any of the on-board sensorsdescribed above. The mechanical actuator 328 may include a base, wheels,and a motor. In some embodiments, such as that shown, client device 324and the sensors 326 can be positioned on the mechanical actuator 328.The robot 322 may be configured in other ways as well.

Any of the robots illustrated in FIGS. 3A-3C may be configured tooperate according to a robot operating system (e.g., an operating systemdesigned for specific functions of the robot). A robot operating systemmay provide libraries and tools (e.g., hardware abstraction, devicedrivers, visualizers, message-passing, package management, etc.) toenable robot applications. Examples of robot operating systems includeopen source software such as ROS (robot operating system), DROS, orARCOS (advanced robotics control operating system), proprietarysoftware, and other examples. A robot operating system may includepublish and subscribe functionality, and may also include functionalityto control components of the robot, such as head tracking, base movement(e.g., velocity control, navigation framework), etc.

FIG. 4A is a block diagram of an example method of a first robotinteracting with the cloud to monitor an environmental condition in afirst environment.

Method 400 shown in FIG. 4A presents an embodiment of a method that, forexample, could be used with systems, devices, and servers describedherein. Method 400 may include one or more operations, functions, oractions as illustrated by one or more of blocks 402-408. Although theblocks are illustrated in a sequential order, these blocks may also beperformed in parallel, and/or in a different order than those describedherein. Also, the various blocks may be combined into fewer blocks,divided into additional blocks, and/or removed based upon the desiredimplementation.

In addition, for the method 400 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include a non-transitory computer readablemedium, for example, such as computer-readable media that store data forshort periods of time like register memory, processor cache and RandomAccess Memory (RAM). The computer readable medium may also includenon-transitory media, such as secondary or persistent long term storage,like read only memory (ROM), optical or magnetic disks, compact-discread only memory (CD-ROM), for example. The computer readable media mayalso be any other volatile or non-volatile storage systems. The computerreadable medium may be considered a computer readable storage medium, atangible storage device, or other article of manufacture, for example.

In addition, for the method 400 and other processes and methodsdisclosed herein, each block may represent circuitry that is wired toperform the specific logical functions in the process.

As shown, the method 400 begins at block 402 where a server maintains aplurality of environmental-condition thresholds, each of whichcorresponds to an environmental condition and is predetermined based ondata corresponding to the environmental condition that is received froma plurality of robots. To this end, the server may store the datacorresponding to each environmental condition in data storage, and maydetermine (e.g., periodically, or on an as-needed basis) theenvironmental-condition threshold corresponding to the environmentalcondition using the data received from the robots. For example, eachenvironmental-condition threshold may comprise a running mean of thedata corresponding to the environmental condition that is received fromthe robots. The environmental-condition thresholds may take other formsas well.

The method 400 continues at block 404 where the server receives from afirst robot first data corresponding to a first environmental condition.The first robot may be one of the plurality of robots from which theserver receives data. The first data may include or may be derived fromdata collected at the first robot via, for example, one or more on-boardor remote sensors. In some embodiments, the first data may include thedata corresponding to the first environmental condition as well as anindication of the first environmental condition. Alternately oradditionally, the first data may include an indication of a firstenvironment in which the first robot is located. The first data may takeother forms as well.

The method 400 continues at block 406 where the server makes a firstcomparison of the first data and a first environmental-conditionthreshold in the plurality of environmental-condition thresholdsmaintained at the server. Depending on the environmental condition, theenvironmental-condition threshold may be a maximum or a minimum. Forexample, a carbon monoxide threshold may correspond to a maximumacceptable level of carbon monoxide in an environment. On the otherhand, a temperature threshold may correspond to a minimum acceptabletemperature in an environment. Generally, the first comparison mayindicate whether the first environmental condition is at an acceptablelevel or an unacceptable level in the first environment.

The method 400 continues at block 408 where, based on the firstcomparison, the server triggers a notification. For example, if thefirst comparison indicates that the first environmental condition is atan unacceptable level, the server may trigger the notification, while ifthe first comparison indicates that the first environmental condition isat an acceptable level, the server may not trigger the notification. Insome embodiments, the server may only trigger the notification if thefirst environmental condition is at an unacceptable level for a certainamount of time. In one instance, the first environmental-conditionthreshold may be a threshold range. An acceptable level may therefore bea level that is within the threshold range, while an unacceptable levelmay be a level that is outside of the threshold range. Other examplesare also possible, and the example of a threshold range is not meant tobe limiting.

The notification may take several forms, depending on the recipient. Forexample, the notification may be a Short Message Service (SMS) orMultimedia Message Service (MMS) message, a telephone call (e.g., aprerecorded message), or an email. Further, the notification message mayinclude instructions to display a visual notification (e.g., an SMS orMMS message, an email, a visual alarm, or a light), to emit an audiblenotification (e.g., a prerecorded message or an alarm), to power on, topower off, to modify one or more parameters, and/or to perform one ormore tasks. The notification may take other forms as well.

Triggering the notification may involve the server causing the firstrobot to transmit the notification. To this end, the server may transmitto the first robot instructions to transmit the notification. Theinstructions may include, for example, an indication of the firstenvironmental condition, and indication of the unacceptable level,and/or an indication of one or more entities to which the notificationshould be transmitted. Alternately or additionally, triggering thenotification may involve the server directly transmitting thenotification to the one or more entities. Example entities include alaptop, mobile telephone, smartphone, personal digital assistant,tablet, personal or cellular telephone, one or more of the remotesensors, and a call center, such as an emergency call center, a publicsafety answering point, and/or other service center. Other entities arepossible as well.

In some embodiments, triggering the notification may involve making adetermination whether the notification comprises an emergencynotification. When the notification comprises an emergency notification,the server and/or robot may transmit the notification to both theemergency call center and the remote device(s), while when thenotification does not comprise an emergency notification, the server maytransmit the notification only to the remote device(s).

In some embodiments, the method 400 may further include the serverreceiving data from a second robot. FIG. 4B is a block diagram of anexample method of a second robot interacting with the cloud to monitorthe environmental condition in a second environment. As shown, themethod 400 may continue at block 410 where the server receives from asecond robot second data corresponding to the first environmentalcondition in a second environment. The second environment may beco-located with the first environment, or may be remote from the firstenvironment. For example, the first environment may be a first home, andthe second environment may be a second home next door to the first home.Other examples are possible as well.

The method 400 may continue at block 412 where the server makes a secondcomparison of the second data and the first environmental-conditionthreshold. Similar to the first comparison, the second comparison maygenerally indicate whether the first environmental condition is at anacceptable level or an unacceptable level in the second environment.

The method 400 may continue at block 414 where, based on the first andsecond comparisons, the server makes a third determination whetherneither, exactly one, or both of the first data and the second data isat an unacceptable level.

Responsive to a determination that neither of the first data and thesecond data is at an unacceptable level, the server may not trigger anotification at block 416. Further, responsive to a determination thatboth of the first data and the second data is at an unacceptable level,the server may also not trigger a notification at block 416. Stillfurther, responsive to a determination that exactly one of the firstdata and the second data is at an unacceptable level, the server maytrigger a notification at block 418. This may prevent the robot fromtriggering a notification based on an event outside the robot'senvironment.

For example, the first environmental condition may be a noise level.When neither of the first data and the second data indicates that thenoise level in the first and second environments, respectively, is atunacceptable level, there may be no need for the server to trigger anotification. Similarly, when both of the first data and the second dataindicate that the noise level in the first and second environments,respectively, are at unacceptable level, there may be no need for theserver to trigger a notification. This is because if the noise levels inboth the first and the second environments are unacceptable, the sourceof the noise may not be local to either of the first and secondenvironments. In the example where the first and second environments areneighboring houses, for instance, the source of the noise may be in thestreet, such that there is no need to trigger a notification from eitherof the first and second environments. On the other hand, when exactlyone of the first data and the second data indicates that the noise levelin exactly one of the first and second environments is at anunacceptable level, there may be a need for the server to trigger anotification. This is because if the noise level is only unacceptable inexactly one of the first and second environments, the source of noise islikely local to the exactly one environment.

In some embodiments, the comparison of data collected at a robot and anenvironmental-threshold, as described above at block 406, may be carriedout by the robot, rather than at the server. FIG. 5 is a block diagramof another example method of a robot interacting with the cloud tomonitor an environmental condition in an environment.

The method 500 begins at block 502 where a robot collects datacorresponding to an environmental condition from at least one of anon-board sensor and a remote sensor. The on-board and remote sensors maytake any of the forms described above.

At block 504, the robot transmits to a server a request for anenvironmental-condition threshold corresponding to the environmentalcondition. To this end, the robot may transmit to the server one or moreof an indication of the environmental condition, an indication of therobot, and an indication of the robot's environment. The robot maytransmit to the server other information as well.

At block 506, the robot receives from the server an indication of theenvironmental-condition threshold. At block 508, the robot makes acomparison of the data and the environmental-condition threshold. Thecomparison may generally indicate whether the environmental condition isat an acceptable or an unacceptable level.

At block 510, the robot may, based on the comparison, transmit anotification. For example, if the comparison indicates that theenvironmental condition is at an unacceptable level, the robot maytrigger the notification, while if the comparison indicates that theenvironmental condition is at an acceptable level, the robot may nottrigger the notification. In some embodiments, the robot may onlytrigger the notification if the environmental condition is at anunacceptable level for a certain amount of time.

Triggering the notification may involve the robot transmitting thenotification to the one or more entities, such as any of the entitiesdescribed above.

It should be understood that arrangements described herein are forpurposes of example only. As such, those skilled in the art willappreciate that other arrangements and other elements (e.g. machines,interfaces, functions, orders, and groupings of functions, etc.) can beused instead, and some elements may be omitted altogether according tothe desired results. Further, many of the elements that are describedare functional entities that may be implemented as discrete ordistributed components or in conjunction with other components, in anysuitable combination and location.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopebeing indicated by the following claims, along with the full scope ofequivalents to which such claims are entitled. It is also to beunderstood that the terminology used herein is for the purpose ofdescribing particular embodiments only, and is not intended to belimiting.

What is claimed is:
 1. A method comprising: maintaining, by a computingdevice, an environmental-condition threshold that corresponds to anenvironmental condition and is determined based on data corresponding tothe environmental condition that is received from a plurality of robots;receiving, by the computing device and from a first robot, first datacorresponding to the environmental condition in a first environment ofthe first robot; making, by the computing device, a first comparison ofthe first data and the environmental-condition threshold; and based onthe first comparison, triggering a notification.
 2. The method of claim1, wherein the environmental-condition threshold comprises a runningmean of the data corresponding to the environmental condition andreceived from the plurality of robots.
 3. The method of claim 1, whereintriggering the notification comprises causing the first robot totransmit the notification.
 4. The method of claim 1, further comprisingtransmitting the notification to at least one of an emergency callcenter and a remote device.
 5. The method of claim 1, furthercomprising: receiving from a second robot second data corresponding tothe first environmental condition in a second environment; and making asecond comparison of the second data and the firstenvironmental-condition threshold, wherein triggering the notificationfurther comprises triggering the notification based on the firstcomparison and the second comparison.
 6. The method of claim 1, whereintriggering the notification based on the first comparison comprisestriggering the notification based on the first comparison beingindicative that the environmental condition is at an unacceptable level.7. A computing device, comprising: at least one processor; and datastorage comprising instructions executable by the at least one processorto: maintain an environmental-condition threshold that corresponds to anenvironmental condition and is determined based on data corresponding tothe environmental condition that is received from a plurality of robots;receive from a first robot first data corresponding to the environmentalcondition in a first environment of the first robot; make a firstcomparison of the first data and the environmental-condition threshold;and based on the first comparison, triggering a notification.
 8. Thecomputing device of claim 7, wherein the environmental-conditionthreshold comprises a running mean of the data corresponding to theenvironmental condition and received from the plurality of robots. 9.The computing device of claim 7, wherein triggering the notificationcomprises causing the first robot to transmit the notification.
 10. Thecomputing device of claim 7, further comprising instructions executableby the at least one processor to transmit the notification to at leastone of an emergency call center and a remote device.
 11. The computingdevice of claim 7, further comprising instructions executable by the atleast one processor to: receive from a second robot second datacorresponding to the first environmental condition in a secondenvironment; and make a second comparison of the second data and thefirst environmental-condition threshold, wherein triggering thenotification further comprises triggering the notification based on thefirst comparison and the second comparison.
 12. A method comprising:receiving, by a robot and from a server, an indication of a firstenvironmental-condition threshold that corresponds to an environmentalcondition and is determined based on data corresponding to theenvironmental condition that is received by the server from a pluralityof robots; obtaining, by the robot, first data corresponding to theenvironmental condition in a first environment of the robot; making, bythe robot, a first comparison of the first data and theenvironmental-condition threshold; and based on the first comparison,triggering a notification.
 13. The method of claim 12, furthercomprising transmitting to the server a request for the firstenvironmental-condition threshold.
 14. The method of claim 12, whereinobtaining the first data corresponding to the environmental condition inthe first environment of the robot comprises collecting first datacorresponding to the environmental condition in the first environmentusing at least one on-board sensor of the robot.
 15. The method of claim14, wherein the at least one on-board sensor is selected from the groupconsisting of: a gyroscope, an accelerometer, a compass, a GlobalPositioning System (GPS) receiver, a light sensor, an infrared sensor,an optical sensor, a biosensor, a radio sensor, a Radio Frequencyidentification (RFID) system, a wireless sensor, a camera, a lightsensor, a motion sensor, a range sensor, a microphone or other audiosensor, a speaker, a radar, a capacitive sensor, a touch sensor, a smokesensor, a carbon monoxide sensor, a natural gas sensor, a pyro sensor, aheat sensor, a water sensor, and a biometric sensor.
 16. The method ofclaim 12, wherein obtaining the first data corresponding to theenvironmental condition in the first environment of the robot comprisesobtaining first data corresponding to the environmental in the firstenvironment using at least one remote sensor interface coupled to atleast one remote sensor.
 17. The method of claim 16, wherein the atleast one remote sensor is selected form the group consisting of: alight sensor, an infrared sensor, an optical sensor, a biosensor, aradio sensor, a Radio Frequency identification (RFID) system, a wirelesssensor, a camera, a light sensor, a motion sensor, a range sensor, amicrophone or other audio sensor, a speaker, a radar, a capacitivesensor, a touch sensor, a smoke sensor, a carbon monoxide sensor, anatural gas sensor, a pyro sensor, a heat sensor, a water sensor, abiometric sensor, an appliance, a washing machine, a dryer, arefrigerator, an oven, a stove, a toaster, a coffee maker, a furnace, anair conditioning unit, a heating unit, a television, a computer, a firealarm, and a security system.
 18. The method of claim 16, furthercomprising verifying the first data using at least one on-board sensorof the robotic device prior to transmitting the notification.
 19. Themethod of claim 12, further comprising transmitting the notification toat least one of an emergency call center and a remote device.
 20. Themethod of claim 12, wherein triggering the notification based on thefirst comparison comprises triggering the notification based on thefirst comparison being indicative that the environmental condition is atan unacceptable level.